#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <cstring>
using namespace std;
typedef long long ll;
const int MAXN=1007;
int n;
ll m;
ll g[25];
ll dp[MAXN];
bool in_[MAXN];
void SPFA() {
    memset(dp, 0x3f, sizeof(dp));
    memset(in_, 0, sizeof(in_));
    sort(g, g+n);
    queue<ll> q;
    q.push(0);
    dp[0]=0;
    m=g[0];
    ll num;
    ll s;
    while (!q.empty()) {
        num=q.front();
        q.pop();
        in_[num]=false;
        for (int i=0; i<n; i++) {
            s=dp[num] + g[i];
            if (dp[s%m] > s) {
                dp[s%m] = s;
                if (!in_[s%m]) {
                    q.push(s%m);
                    in_[s%m]=true;
                }
            }
        }
    }
}
int main() {
    ll k;
    while (cin>>n>>k) {
        for (int i=0; i<n; i++) scanf("%lld", &g[i]);
        SPFA();
        if (k >= dp[k%m]) cout<<"possible"<<endl;
        else cout<<"impossible"<<endl;
    }
    return 0;
}
